home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / io / Console$LineReader.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.4 KB  |  115 lines

  1. package java.io;
  2.  
  3. class Console$LineReader extends Reader {
  4.    // $FF: renamed from: in java.io.Reader
  5.    private Reader field_0;
  6.    // $FF: renamed from: cb char[]
  7.    private char[] field_1;
  8.    private int nChars;
  9.    private int nextChar;
  10.    boolean leftoverLF;
  11.    // $FF: synthetic field
  12.    final Console this$0;
  13.  
  14.    Console$LineReader(Console var1, Reader var2) {
  15.       this.this$0 = var1;
  16.       this.field_0 = var2;
  17.       this.field_1 = new char[1024];
  18.       this.nextChar = this.nChars = 0;
  19.       this.leftoverLF = false;
  20.    }
  21.  
  22.    public void close() {
  23.    }
  24.  
  25.    public boolean ready() throws IOException {
  26.       return this.field_0.ready();
  27.    }
  28.  
  29.    public int read(char[] var1, int var2, int var3) throws IOException {
  30.       int var4 = var2;
  31.       int var5 = var2 + var3;
  32.       if (var2 >= 0 && var2 <= var1.length && var3 >= 0 && var5 >= 0 && var5 <= var1.length) {
  33.          synchronized(Console.access$000(this.this$0)) {
  34.             boolean var7 = false;
  35.             char var8 = '\u0000';
  36.  
  37.             do {
  38.                if (this.nextChar >= this.nChars) {
  39.                   int var9 = 0;
  40.  
  41.                   do {
  42.                      var9 = this.field_0.read(this.field_1, 0, this.field_1.length);
  43.                   } while(var9 == 0);
  44.  
  45.                   if (var9 <= 0) {
  46.                      if (var4 - var2 == 0) {
  47.                         return -1;
  48.                      }
  49.  
  50.                      return var4 - var2;
  51.                   }
  52.  
  53.                   this.nChars = var9;
  54.                   this.nextChar = 0;
  55.                   if (var9 < this.field_1.length && this.field_1[var9 - 1] != '\n' && this.field_1[var9 - 1] != '\r') {
  56.                      var7 = true;
  57.                   }
  58.                }
  59.  
  60.                if (this.leftoverLF && var1 == Console.access$100(this.this$0) && this.field_1[this.nextChar] == '\n') {
  61.                   ++this.nextChar;
  62.                }
  63.  
  64.                this.leftoverLF = false;
  65.  
  66.                while(this.nextChar < this.nChars) {
  67.                   var8 = var1[var4++] = this.field_1[this.nextChar];
  68.                   this.field_1[this.nextChar++] = 0;
  69.                   if (var8 == '\n') {
  70.                      return var4 - var2;
  71.                   }
  72.  
  73.                   if (var8 == '\r') {
  74.                      if (var4 == var5) {
  75.                         if (var1 != Console.access$100(this.this$0)) {
  76.                            this.leftoverLF = true;
  77.                            return var4 - var2;
  78.                         }
  79.  
  80.                         var1 = Console.access$200(this.this$0);
  81.                         var5 = var1.length;
  82.                      }
  83.  
  84.                      if (this.nextChar == this.nChars && this.field_0.ready()) {
  85.                         this.nChars = this.field_0.read(this.field_1, 0, this.field_1.length);
  86.                         this.nextChar = 0;
  87.                      }
  88.  
  89.                      if (this.nextChar < this.nChars && this.field_1[this.nextChar] == '\n') {
  90.                         var1[var4++] = '\n';
  91.                         ++this.nextChar;
  92.                      }
  93.  
  94.                      return var4 - var2;
  95.                   }
  96.  
  97.                   if (var4 == var5) {
  98.                      if (var1 != Console.access$100(this.this$0)) {
  99.                         return var4 - var2;
  100.                      }
  101.  
  102.                      var1 = Console.access$200(this.this$0);
  103.                      var5 = var1.length;
  104.                   }
  105.                }
  106.             } while(!var7);
  107.  
  108.             return var4 - var2;
  109.          }
  110.       } else {
  111.          throw new IndexOutOfBoundsException();
  112.       }
  113.    }
  114. }
  115.